package com.yulongtian.oneProblemEveryDay.month202302;

import java.util.ArrayList;
import java.util.List;

/**
 * https://leetcode.cn/problems/circular-permutation-in-binary-representation/
 *
 * @author yulongTian
 * @create 2023-02-23 9:29
 */
public class Test19 {
    public static void main(String[] args) {

    }

    /**
     * 使用格雷码生成一个n位序列。
     * 旋转序列，使其第一个元素为 start。
     * @param n
     * @param start
     * @return
     */
    public List<Integer> circularPermutation(int n, int start) {
        List<Integer> ret = new ArrayList<Integer>();
        for (int i = 0; i < 1 << n; i++) {
            ret.add((i >> 1) ^ i ^ start);
        }
        return ret;
    }

}
